<!--
 * @Descripttion: 
 * @Author: voanit
 * @Date: 2022-08-23 18:16:20
 * @LastEditors: voanit
 * @LastEditTime: 2022-08-24 09:47:16
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js"></script>
</head>

<body>
  <script>
    const getSwiper = async () => {
      // const res = await axios.get('https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata')
      // console.log(res, 999);
      return axios.get('https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata')
    }
    const getNav = async () => {
      // const res = await axios.get('https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata')
      // console.log(res, 999);
      return axios.get('https://api2-hmugo-web.itheima.net/api/public/v1/home/catitems')
    }
    const getFloor = async () => {
      // const res = await axios.get('https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata')
      // console.log(res, 999);
      return axios.get('https://api-hmugo-web.itheima.net/api/public/v1/home/floordata')
    }
    /* 实现并发请求===》一起发送 */
    // Promise.all(数组)   
    // 要求：数组中是函数,并且这个函数的返回值必须是Promise
    /* 
    返回值：数组
    面试题：
    1-Promsie.all解决什么问题
    2-如果有一个请求失败会怎么样：只要有一个请求失败就全部失败=======
    留一个思考题：有一个失败了其他的也想获取？finally

    总结：全部走完在执行返回的结果但是有一个失败败就会全部获取不到
    */
    // Promise.all([getSwiper(), getNav(), getFloor()]).then(res => {
    //   console.log(res, 6666);
    // })

    /* 谁先执行完就先返回他结果====赛跑  跑得快的那个 */
    Promise.all([getSwiper(), getNav(), getFloor()]).finally((res) => {
      console.log(res, 6666);
    }).catch(err => err)
    /*
    Promise.then().catch().finally().all().race()
    三种状态
    面试官问 Promise的理解
    + 他是干嘛的 
    + 解决什么问题  地狱回调
    + 特性   Promise.then().catch().finally().all().race()  + 三种状态
    + 使用场景
    */
  </script>
</body>

</html>